home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / e / sane80bitFloat.lha / ExtendedTest.e < prev   
Text File  |  1999-01-11  |  1KB  |  34 lines

  1. -> Test for the 'extended_double.m' module by Deniil 715!
  2.  
  3. MODULE 'mathieeedoubtrans', '*extended_double'
  4.  
  5. PROC main()
  6.  DEF x, y, double64:ieee_dbl, extended80:sane_ext, float32
  7.  IF mathieeedoubtransbase:=OpenLibrary('mathieeedoubtrans.library',0)
  8.  
  9.   float32:=3.141596         -> just a number in 32 bit ieee, known as
  10.                             -> 'float' in C.
  11.   x,y:=IeeeDPFieee(float32) -> convert it to 64 bit ieee, known as
  12.                             -> 'double' in C.
  13.   double64.hi:=x            -> put the 2*32 values into an object
  14.   double64.lo:=y
  15.   double_to_extended(double64, extended80) -> convert the double to an
  16.                             -> 80 bit sane float, known as 'extended'
  17.                             -> or 'long double' in *some* C-compilers.
  18.  
  19. -> .... use the 80bit float, extended80, which aslo could have been
  20. -> defined as:   DEF extended80[10]:ARRAY
  21.  
  22.   extended_to_double(extended80, double64) -> convert it back to
  23.                                            -> double.
  24.   float32:=IeeeDPTieee(double64.hi, double64.lo) -> convert the double
  25.                                                  -> back to float.
  26.   x:=!float32!              -> Make an int of the float.
  27.   WriteF('x=\d\n',x)        -> Print the int, should show '3'.
  28.  
  29.   CloseLibrary(mathieeedoubtransbase)
  30.  ELSE
  31.   WriteF('Could not open mathieeedoubtrans.library v0!\n')
  32.  ENDIF
  33. ENDPROC
  34.